package com.glamour.hlcity.common.util;

import java.util.ArrayList;
import java.util.List;

/**
 * 列表工具类ListUtil
 * 
 * @author zhaoxing.liuzx
 */
public  class ListUtil {
    /**
     * 逗号
     */
    public static final String COMMA = ",";

    private ListUtil() {
    }

    /**
     * 判断列表是否为空
     * 
     * @param list
     * @return
     */
    public static <V extends Object> boolean isBlank(final List<V> list) {
        return (null == list || list.isEmpty());
    }

    /**
     * 判断列表是否不为空
     * 
     * @param list
     * @return
     */
    public static <V extends Object> boolean isNotBlank(final List<V> list) {
        return !isBlank(list);
    }

 

    /**
     * 获得数组中的第一个值
     * 
     * @param <T> 泛型类别
     * @param list 数组
     * @return
     */
    public static <T> T first(List<T> list) {
        if (list.isEmpty()) {
            return null;
        }
        return list.get(0);
    }

    /**
     * 生成list,如果objs中有null或者""的剔除
     * 
     * @param <T>
     * @param objs
     * @return
     */
    public static <T> List<T> toList(T... objs) {
    	if(objs==null || objs.length==0){
    		return emptyList();
    	}
        List<T> list = new ArrayList<T>();
        for (T t : objs) {
        	if(t==null || "".equals(t)){
        		continue;
        	}
            list.add(t);
        }
        return list;
    }

    /**
     * 判断是否list中包含t
     * 
     * @param <T>
     * @param list
     * @param t
     * @return
     */
    public static <T> boolean contain(T[] list, T t) {
        if (list == null || list.length == 0) {
            return false;
        }
        if (t == null) {
            return false;
        }
        for (T temp : list) {
            if (temp.equals(t)) {
                return true;
            }
        }
        return false;
    }

    /**
     * 返回一个空的数组
     * 
     * @param <T>
     * @return
     */
    public static <T> List<T> emptyList() {
        return new ArrayList<T>();
    }
    
    /**
     * 将一个列表转换成一个数组
     * @param <T>
     * @param list
     * @return
     */
    public static  Object[] toArray(List<? extends Object> list){
    	return  list.toArray();
    }
    
    
    

   
    
}
